3ed14370984c7a3fd027c1a2c27b1795acb1939a,plugins-management/src/com/intellij/openapi/updateSettings/impl/PluginDownloader.java,PluginDownloader,prepareToInstall,#ProgressIndicator#,68
Before Change
File oldFile = null;
if (PluginManager.isPluginInstalled(PluginId.getId(myPluginId))) {
//store old plugins file
final IdeaPluginDescriptor ideaPluginDescriptor = PluginManager.getPlugin(PluginId.getId(myPluginId));
LOG.assertTrue(ideaPluginDescriptor != null);
if (myPluginVersion != null && IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), myPluginVersion) >= 0) return false;
oldFile = ideaPluginDescriptor.getPath();
After Change
IdeaPluginDescriptor ideaPluginDescriptor = null;
if (PluginManager.isPluginInstalled(PluginId.getId(myPluginId))) {
//store old plugins file
ideaPluginDescriptor = PluginManager.getPlugin(PluginId.getId(myPluginId));
LOG.assertTrue(ideaPluginDescriptor != null);
if (myPluginVersion != null && IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), myPluginVersion) >= 0) return false;
oldFile = ideaPluginDescriptor.getPath();
}
// download plugin
File file;
String errorMessage = IdeBundle.message("unknown.error");
try {
file = downloadPlugin(pi);
}
catch (IOException ex) {
file = null;
errorMessage = ex.getMessage();
}
if (file == null) {
final String errorMessage1 = errorMessage;
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
Messages.showErrorDialog(IdeBundle.message("error.plugin.was.not.installed", getPluginName(), errorMessage1),
IdeBundle.message("title.failed.to.download"));
}
});
return false;
}
if (ideaPluginDescriptor != null) {
final IdeaPluginDescriptorImpl descriptor = PluginManager.loadDescriptorFromJar(file);
if (descriptor == null) return false;
if (IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), descriptor.getVersion()) >= 0) return false; //was not updated
if (oldFile != null) {
// add command to delete the 'action script' file
StartupActionScriptManager.ActionCommand deleteOld = new StartupActionScriptManager.DeleteCommand(oldFile);